Triggers for time-shifted content playback

ABSTRACT

In accordance with one or more aspects, a trigger corresponding to media content is retrieved from a storage device. The trigger includes a time-shift parameter identifying how much playback of the media content can be time-shifted while keeping the trigger valid. A determination is made, based at least in part on a current time and the time-shift parameter, whether the trigger is valid during playback of the media content.

BACKGROUND

Time-shifted viewing of television programs has been permitted byvarious technologies, including video cassette recorders (VCRs) and morerecently digital versatile disc (DVD) recorders and digital videorecorders (DVRs). Although time-shifted viewing of programs can providemany advantages to users, problems can also arise when playing backtime-shifted programs. For example, some programs may allow for userinput, such as voting for particular contestants. Problems can arise ifthe user has recorded the program and is playing back the programtime-shifted because it may no longer make sense for the user to providehis or her input.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In accordance with one or more aspects of the triggers for time-shiftedcontent playback, a consumer device stores a trigger corresponding tomedia content on a storage device. The trigger is retrieved from thestorage device and a check is made, while playing back the mediacontent, whether one or more criteria of the trigger are satisfied, theone or more criteria including a time-shift parameter identifying howlong the trigger is valid after the media content has been aired. One ormore actions identified by the trigger are performed if the criteria ofthe trigger are satisfied, and the one or more actions are not performedif the criteria of the trigger are not satisfied.

In accordance with one or more aspects of the triggers for time-shiftedcontent playback a trigger corresponding to media content is retrievedfrom a storage device. The trigger includes a time-shift parameteridentifying how much playback of the media content can be time-shiftedwhile keeping the trigger valid. A determination is made, based at leastin part on a current time and the time-shift parameter, whether thetrigger is valid during playback of the media content.

In accordance with one or more aspects of the triggers for time-shiftedcontent playback a consumer device includes a trigger store and amonitor module. The trigger store is to store multiple triggers, each ofthe multiple triggers comprising a criteria portion and a payloadportion, the criteria portion identifying one or more criteria and thepayload portion identifying one or more actions to be performed. The oneor more criteria include a time-shift parameter. The monitor module isto monitor data corresponding to media content being played back anddetect when the data satisfies the one or more criteria of one or moreof the multiple triggers.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the drawings to reference likefeatures.

FIG. 1 illustrates an example consumer device implementing the triggersfor time-shifted content playback in accordance with one or moreembodiments.

FIG. 2 illustrates an example trigger that can be used with the triggersfor time-shifted content playback in accordance with one or moreembodiments.

FIG. 3 is a flowchart illustrating an example process for implementingtriggers for time-shifted content playback in accordance with one ormore embodiments.

FIG. 4 illustrates an example system in which one or more embodiments oftriggers for time-shifted content playback can be implemented.

FIG. 5 illustrates various components of an example consumer device thatcan implement one or more embodiments of triggers for time-shiftedcontent playback.

FIG. 6 illustrates an example entertainment and information system inwhich one or more embodiments of triggers for time-shifted contentplayback can be implemented.

DETAILED DESCRIPTION

Triggers for time-shifted content playback are discussed herein. Mediacontent played back by consumer devices for time-shifted viewing canhave one or more corresponding triggers. Each trigger has a criteriaportion and a payload portion. The payload portion identifies one ormore actions to be performed when the criteria or parameters in thecriteria portion are satisfied. One of these parameters in the criteriaportion is a time-shift parameter identifying how long the trigger isvalid after the media content is first available. The consumer devicechecks, while playing back the media content, whether the trigger isstill valid. If too much time has elapsed since distribution of themedia content, as indicated by the time-shift parameter, then thetrigger is no longer valid. If valid, the one or more actions identifiedin the payload portion of the trigger are performed; otherwise, the oneor more actions identified in the payload portion of the trigger are notperformed.

FIG. 1 illustrates an example consumer device 100 implementing thetriggers for time-shifted content playback in accordance with one ormore embodiments. Consumer device 100 can be any of a variety of devicesthat output video for display. For example, consumer device 100 can be acomputer, such as a desktop computer, server computer, a mobile station,an entertainment appliance, a set-top box communicatively coupled to adisplay device, a video playback device (e.g., digital video recorder(DVR), digital versatile disk (DVD) player and/or recorder, etc.), atelevision, a cell or other wireless phone, a game console, anautomotive PC, and so forth. Thus, consumer device 100 can range fromfull resource devices with substantial memory and processor resources(e.g., personal computers, game consoles, etc.) to a low-resource devicewith limited memory and/or processing resources (e.g., traditionalset-top boxes, hand-held game consoles, DVD players, etc.).

Consumer device 100 includes a media content playback module 102, amonitor module 104, a trigger store 106, and a content store 108. Mediacontent refers to one or more of a variety of different types of contentthat can be played back to a user. Oftentimes media content isaudio/video content (e.g., particular programs such as movies, sitcoms,commercials, news broadcasts, documentaries, sporting events, and soforth). The media content can thus be referred to as being or includinga particular program. Alternatively, media content can be only one typeof content (e.g., just audio content, just video content, etc.), or canbe other types of content (e.g., images, text, and so forth).

Media content playback module 102 receives media content 110 and outputsmedia content 120. Media content 110 can be received directly byplayback module 102 or alternatively can be received via content store108. Content store 108 allows for time-shifted viewing of media content,providing storage for media content 110. Although illustrated as part ofconsumer device 100, it is to be appreciated that content store 108 canbe implemented on one or more removable media (e.g., magnetic disk,optical disc, flash memory, etc.) and/or one or more remote storagedevices (e.g., a server computer, another consumer device, etc.).

Time-shifted viewing of media content can also be accomplished in othermanners. For example, media content 110 can be a Video-On-Demandprogram. Viewing of the program can be time-shifted due to the abilityof the user to select a time for viewing of the program (after theprogram is first available). Time-shifted viewing of media content canrefer to a variety of different situations where there is an expectedtime of viewing (e.g., a time when the program is aired, a time when theprogram is first available, etc.), and the actual viewing time by theuser is different.

Media content playback module 102 converts media content 110 into aformat that can be played back (e.g., displayed by a display device,played back by speakers, etc.) and outputs the converted media contentas media content 120. Media content playback module 102 can also receiveinput from a user (e.g., via a remote control device) or other componentor module of device 100 to control the output of media content 120, suchas to pause playback of the content, select particular media content forplayback, fast forward or rewind through the media content, and soforth.

Media content 120, along with trigger result 124 as discussed in moredetail below, are output by consumer device 100 as media output 126. Inone or more embodiments, consumer device 100 plays back media output 126(e.g., displays video content, plays back audio content, and so forth).In other embodiments consumer device 100 generates one or more signalsbased on media content 110 and/or trigger result 124 that is output toone or more other devices (e.g., televisions, projectors, speakers,etc.) which in turn display or otherwise present media output 126.

Media content 110 can be distributed to consumer device 100 in a varietyof different manners. The sources of media content 110 can be localsources, such as a hard disk or a DVD that is inserted into, coupled to,or included as part of consumer device 100. The sources of media content110 can also be remote sources, such as one or more remote servers,satellite operators, network television operators, cable operators, orother devices or operators making content 110 available to consumerdevice 100. Remote sources can make content 110 available over a varietyof different types of transmission media, such as one or more ofsatellite transmissions, radio frequency transmissions, cabletransmissions, the Internet, a wide area network (WAN), a local areanetwork (LAN), a wireless network, a telephone network, an intranet, andso forth.

In one or more embodiments, media content 110 is aired over one or moretransmission media and received by consumer device 100. The airing ofmedia content refers to the transmitting of the program by the sourcevia a transmission media. The aired media content 110 can be stored incontent store 108 for time-shifted playback. Alternatively, mediacontent 110 can be played back as it is received without being stored incontent store 108. In other embodiments, media content 110 can bedistributed using other techniques, such as optical discs, flash memory,and so forth.

Trigger store 106 receives and stores triggers 122. Each trigger 122includes a payload portion identifying one or more actions to beperformed, and a criteria portion identifying one or more criteria thatare to be satisfied in order for the one or more actions to beperformed. Although illustrated as separate from content store 108,alternatively trigger store 106 and content store 108 can be implementedas a single store. Additionally, although illustrated as part ofconsumer device 100, it is to be appreciated that trigger store 106 canbe implemented on one or more removable media (e.g., magnetic disk,optical disc, flash memory, etc.) and/or one or more remote storagedevices (e.g., a server computer, another consumer device, etc.).

Triggers 122 can be distributed to consumer device 100 in a variety ofdifferent manners. Analogous to media content 110, triggers 122 can bereceived from local sources or remote sources distributing triggers 122over a variety of different transmission media or using otherdistribution techniques. By way of example, triggers 122 can be receivedwith media content 110 (e.g., embedded therein, as part of a separatestream, in metadata of media content 110, etc.), can be received withprogramming guide data, can be received via a separate communicationwith a trigger source, and so forth.

FIG. 2 illustrates an example trigger 200 that can be used with thetriggers for time-shifted content playback in accordance with one ormore embodiments. Trigger 200 includes a criteria portion 202 includinga time-shift parameter 204, and a payload portion 206. In one or moreembodiments, trigger 200 also includes a trigger identifier, although inother embodiments no such identifier is included.

Payload portion 206 identifies one or more actions to be performed. Avariety of different actions can be included in payload portion 206.These actions can include displaying or otherwise presentingadvertisements or other information, running a particular application orprogram, loading and displaying a Web page, creating a new trigger,performing one or more actions identified in the payload portions of oneor more other triggers, and so forth. Applications or programsidentified in payload portion 206 as to be run can be included intrigger 200 (e.g., in payload portion 206), can have been previouslydownloaded to the consumer device on which trigger 200 is being used,can be downloaded or run from a Web page identified in payload portion206, and so forth.

Additionally, the one or more actions identified in payload portion 206can include data, a script or other instructions, or other informationto be made available to an application when the criteria in criteriaportion 202 is satisfied. This application can be monitor module 104 ofFIG. 1, or alternatively another module or application. This applicationcan be an already executing application, or alternatively an applicationthat is executed in response to the criteria in criteria portion 202being satisfied.

Different triggers 200 can identify different actions to be performed,with the author or creator of a particular trigger being able to includethe particular one or more actions that they desire in payload portion206. For example, payload portion 206 can identify one or more actionsto run a feedback application that displays, on the consumer device, auser interface allowing the user to input feedback regarding the mediacontent corresponding to trigger 200. By way of another example, payloadportion 206 can identify one or more actions to run a voting applicationthat displays, on the consumer device, a user interface allowing theuser to vote for a particular contestant in the media contentcorresponding to trigger 200.

Criteria portion 202 identifies one or more parameters or criteria thatare to be satisfied in order for the one or more actions in payloadportion 206 to be performed. At least one of these one or more criteriais a time-shift parameter 204. Although only one time-shift parameter204 is illustrated in FIG. 2, in alternate embodiments multipletime-shift parameters 204 can be included in criteria portion 202 (e.g.,different time-shift parameters 204 can be associated with differentactions in payload portion 206).

Time-shift parameter 204 identifies how much playback of the mediacontent corresponding to trigger 200 can be time-shifted while keepingthe trigger valid. If trigger 200 is valid, criteria portion 202 wouldbe satisfied (assuming any other criteria in portion 202 is satisfied)and the one or more actions in payload portion 206 would be performed asdiscussed in more detail below. If trigger 200 is invalid, criteriaportion 202 would not be satisfied and the one or more actions inpayload portion 206 would not be performed as discussed in more detailbelow.

In one or more embodiments, time-shift parameter 204 identifies anexplicit date and/or time at which trigger 200 becomes invalid. Forexample, time-shift parameter 204 can identify that trigger 200 becomesinvalid at 11:00 pm (local time or in a particular time zone) on Apr.15, 2008. In one or more other embodiments, time-shift parameter 204 isa relative value identifying an amount of time after the media contentcorresponding to trigger 200 has aired or has otherwise beendistributed. For example, the media content can have a correspondingindication of when the media content was first available (e.g., firstaired, first available for download, first available for playback,etc.), and time-shift parameter 204 can be relative to this “firstavailable” time. Once this amount of time has elapsed trigger 200becomes invalid. For example, time-shift parameter 204 can identify thattrigger 200 becomes invalid three hours after the program correspondingto trigger 200 is first available (e.g., three hours from the beginningof airing of the media content, three hours from the ending of airing ofthe media content, three hours after a Video-On-Demand program is firstavailable, and so forth).

It should be noted that a trigger can be valid even though it mayinitially appear that the time-shift parameter will not be satisfied.For example, assume that time-shift parameter 204 identifies thattrigger 200 becomes invalid three hours from the ending of airing of aprogram. If a user begins playback of the program four hours after thebeginning of airing of the program, then it may appear that time-shiftparameter 204 would not be satisfied. However, if the user fast forwardsor skips over part of the program, then it is possible that by the timethe user is watching the end of the program the time is still withinthree hours from the ending of airing of the program, and the time-shiftparameter 204 would be satisfied.

In one or more embodiments, time-shift parameter 204 can have aparticular value indicating that there are no restrictions on how muchplayback of the media content corresponding to trigger 200 can betime-shifted. In other words, this particular value indicates that anyamount of time-shifting is permissible. Alternatively, some triggers 200may not include the time-shift parameter 204, with the absence oftime-shift parameter 204 indicating that any amount of time-shifting ispermissible.

Additionally, various other criteria can also be included in criteriaportion 202. In one or more embodiments, this criteria includes anidentifier of particular media content. This identifier can be, forexample, a title or name of the particular media content, a summary orother description of the content, or some other identifier. When suchcriteria are included in criteria portion 202, the one or more actionsin payload portion 206 are performed only when that particularidentified media content is being played back.

In one or more embodiments, a delay parameter is included in criteriaportion 202. The delay parameter identifies how long after the othercriteria or parameters in criteria portion 202 are satisfied that theone or more actions in payload portion 206 are to be performed.Analogous to the time-shift parameter 204, this delay parameter can bean explicit value or a relative value (e.g., relative to a starting timeof the media content, an ending time of the media content, and soforth). For example, trigger 200 may indicate that at a particular time,when a particular channel is tuned to, a particular application is to berun and time-shift parameter 204 can identify the playback of thecorresponding media content can be time-shifted up to two hours. Theparticular time, particular channel, and time-shift parameter areidentified in criteria portion 202, and the one or more actions to runthe particular application are identified in payload portion 206.Additionally, a delay parameter can be included in criteria portion 202to indicate that once the particular time and particular channelcriteria are satisfied, running of the particular application is to bedelayed one hour. Alternatively, the delay parameter, or an indicationof the delay, can be included elsewhere. For example, the delayparameter or an indication of the delay can be included in payloadportion 206, monitor module 104 of FIG. 1, otherwise accessible tomonitor module 104, and so forth. Accordingly, even though the othercriteria in criteria portion 202 are satisfied, the particularapplication would not be run until an hour later due to the delayparameter.

Returning to FIG. 1, monitor module 104 monitors data of media content110 to identify when the criteria of one or more triggers 122 aresatisfied. Monitor module 104 can communicate with playback module 102to identify the particular media content 120 being output by module 102at any given time. Alternatively, monitor module 104 can receive mediacontent 110 (directly or via content store 108) and monitor thisreceived content directly rather than via playback module 102. Monitormodule 104 can monitor data of media content 110 as media content 110 isreceived from content store 108 or alternatively from another source.

In one or more embodiments, triggers 122 correspond to particular mediacontent. This correspondence can be identified in a variety of differentmanners. For example, an identifier of the media content can be includedin the criteria portion of the media content. By way of another example,triggers 122 can be collected or grouped together in trigger store 106based on their corresponding media content. Alternatively, a trigger 122can correspond to all media content, to multiple different mediacontent, and so forth.

Monitor module 104 can monitor one or more of different types of contentincluded in media content 110. For example, monitor module 104 canmonitor one or more of audio content and video content. Additionally, inone or more embodiments media content 110 includes metadata content, andmonitor module 104 can monitor this metadata content. The metadata canbe included as part of (e.g., embedded in) other types of content (e.g.,included in a vertical blanking interval (VBI) of video content,included in a packet header, and so forth). Alternatively, the metadatacan be separate from other types of content, such as being included in aseparate stream or channel from the audio, video, and/or other types ofcontent. This metadata included in media content 110 is associated with,and describes, the audio, video, and/or other types of content in mediacontent 110. Examples of such metadata include closed captioning datathat is a text version of the audio content included in media content110, teletext data corresponding to media content 110, song or programtitle information corresponding to media content 110, and so forth.

When the data of media content 110 satisfies the one or more criteria ofa trigger 122, the one or more actions identified in that trigger 122are performed. The data of media content 110 being monitored can includethe media content 110 itself, such as metadata, video content, audiocontent, and so forth. The media content 110 itself can be monitored toidentify particular text (e.g., particular letters, numbers, symbols,and so forth), particular images, particular audio data, and so forth.The particular manner in which media content 110 is monitored is basedat least in part on the one or more triggers 122. For example, if atrigger 122 indicates that one criteria is particular text that is tooccur in media content 110, then monitor module 104 monitors the mediacontent for that particular text.

The data of media content 110 being monitored can also include differentdata describing the playback of media content 110. This different datacan be obtained from different sources, such as included as part ofmedia content 110 (e.g., header information describing media content110), from media content playback module 102, from content store 108,and so forth. A variety of different data describing the playback ofmedia content 110 can be monitored, such as a television channel that istuned to for playback, the title of program being played back as themedia content, and so forth.

During playback of media content, monitor module 104 maintains and/oraccesses a current date and/or time. This current date and/or time canbe, for example, a system or device time maintained by the consumerdevice playing back the media content. This current date and/or time canbe used by monitor module 104 in determining whether one or more of thecriteria of a trigger are satisfied. For example, the current dateand/or time can be compared to the value of the time-shift parameter inthe trigger to determine whether the trigger is valid at the currentdate and/or time.

It should be noted that in one or more embodiments the data of mediacontent 110 is available for analysis by monitor module 104 an amount oftime (e.g., at least a few seconds) before the media content 110 isplayed back by module 102. Accordingly, monitor module 104 can analyzethe data of media content 110 prior to the media content being playedback by module 102, allowing the one or more actions to be performed atapproximately the same time, or alternatively an amount of time before,particular criteria are actually satisfied by the media content 110. Forexample, if the criteria were to run a particular application causing auser interface to be displayed at a particular time, then the mediacontent 110 can be analyzed and the application run an amount of timebefore that particular time specified by the criteria so that the userinterface can be displayed at that particular time specified by thecriteria.

When monitor module 104 determines that the one or more criteria of atrigger 122 are satisfied, monitor module 104 performs the one or moreactions in the payload portion of that trigger. In response toperforming these one or more actions, monitor module 104 generates atrigger result 124 that is output by consumer device 100. Media content120 and/or trigger result 124 are output by consumer device 100 as mediaoutput 126. In one or more embodiments, media content 120 and triggerresult 124 are output concurrently as media output 126. In suchembodiments, playback of media content 120 can continue while triggerresult 124 is output, or alternatively playback of media content 120 canbe paused while trigger result 124 is output. Alternatively, mediacontent 120 and trigger result 124 can be output separately, with theoutput of one of content 120 and result 124 being excluded from mediaoutput 126 when the other is being output.

Trigger result 124 can be the output of a variety of different types ofcontent, such as video content, image content, audio content, and soforth. Trigger result 124 can be displayed or otherwise presentedconcurrently with media content 120. For example, trigger result 124 canbe video content or an image that is displayed overlaid on media content120, such as a small icon at the bottom of a display. These small iconscan also be referred to as “bugs”. By way of another example, triggerresult 124 can be audio content that is played back concurrently withmedia content 120. By way of yet another example, trigger result 124 canbe displayed in a separate portion or window (e.g., in apicture-in-picture (PIP) window) from media content 120. Alternatively,as above, trigger result 124 can be displayed or otherwise presentedseparately from the display or other presentation of media content 120.

Additionally, it should be noted that in order to perform the one ormore actions identified in the payload portion of a trigger, monitormodule 104 may access one or more other devices. For example, monitormodule 104 may access a remote device over a network to retrieve contentto be displayed as trigger result 124. In one or more embodiments,monitor module 104 accesses a remote server over the Internet toretrieve one or more images or Web pages to be displayed as triggerresult 124.

Alternatively, in one or more embodiments monitor module 104 invokes oneor more other components or modules to generate the output of triggerresult 124. For example, monitor module 104 can invoke a Web browsermodule, a remote device communication module (e.g., supporting RDP(Remote Desktop Protocol)), other applications that display or otherwisepresent information, and so forth. Such other components or modules canbe invoked in a variety of different manners, such as firing an eventthat is dispatched to the appropriate component or module by an eventdispatcher, invoking an application programming interface (API) exposedby the component or module, and so forth.

Monitor module 104 can be implemented to monitor the data of mediacontent 110 and compare it to triggers 122 in a variety of differentmanners. In one or more embodiments, monitor module 104 (oralternatively another component or module) generates trigger objects andsession objects. A trigger object is generated for each trigger 122 andincludes the criteria and actions to be performed from the criteria andpayload portions of the trigger 122. A session object is also generatedthat describes the current media content session. The session objectincludes data of the media content (e.g., channel number via which themedia content is being received, call sign of the channel via which themedia content is being received, title of the programming that isdistributed as the media content, and so forth). Metadata of the mediacontent (or other types of data being monitored by module 104) istypically not included in this session object but rather is analyzed asit is received. Alternatively, this metadata or other type of data canbe included in the session object.

Triggers 122 can be provisioned triggers and/or application-basedtriggers. A provisioned trigger refers to a trigger that is distributedto consumer device 100 by some remote device or component. Thisdistribution is initiated by the remote device or component, and theprovision triggers typically remain in trigger store 106 until theyexpire or are updated by the remote device or component. Anapplication-based trigger refers to a trigger that is added to triggerstore 106 by an application or module running on consumer device 100.Application-based triggers typically remain in trigger store 106 whilethe application is running, and are removed from trigger store 106 whenthe application stops running.

In one or more embodiments, all of the criteria included in the criteriaportion of the trigger need to be satisfied in order for the one or moreactions in the payload portion to be performed. Alternatively variouslogical operators, such as “AND” and “OR”, can be used in conjunctionwith the criteria to allow different combinations to be defined. Forexample, four different criteria could be listed, at least one of whichis to be satisfied in order for the one or more actions to be performed.By way of another example, three different criteria could be listed, aparticular one of which and either one (or both) of the other two is(are) to be satisfied in order for the one or more actions to beperformed.

Additionally, it should be noted that criteria can be full-match orpartial-match criteria. Full-match criteria indicates that the criteriais to match the data of the programming content exactly, whereaspartial-match criteria indicates that the data of the programming is toinclude at least the partial-match criteria. For example, if the data ofthe programming were “Microsoft Corporation” and the criteria were“Corporation”, then the criteria would be a partial-match to the data ofthe programming but not a full-match. Whether criteria is full-match orpartial-match can be inherent in the particular criteria, or identifiedin other manners such as including a flag or other value with thecriteria indicating whether it is full-match or partial-match.

Furthermore, partial-match criteria can be a “starts-with”partial-match, an “anywhere” partial-match, or other type ofpartial-match. A starts-with partial-match indicates that the data ofthe programming is to start with the criteria, whereas an anywherepartial-match indicates that the criteria can be included anywhere inthe data of the programming. For example, if the data of the programmingwere “Microsoft Corporation” and the criteria were “Corporation”, thenthe criteria would be an anywhere partial-match to the data of theprogramming but not a starts-with partial-match. Other types of partialmatches can also be defined using regular expressions. For example,quantifiers or wild cards can be used, such as “*” to indicate zero ormore characters, “?” to indicate zero or one characters, and so forth.Whether partial-match criteria is starts-with or anywhere criteria, oralternatively other criteria, can be inherent in the particular criteriaor can be identified in other manners such as including a flag or othervalue with the criteria indicating whether it is starts-with oranywhere.

In one or more embodiments, trigger result 124 is output for aparticular amount of time. The duration of the output of trigger result124 can be the same for all triggers, or alternatively can vary bytrigger. In one or more embodiments, each trigger 122 includes as partof its payload portion an identifier of the duration of the output oftrigger result 124 for that particular trigger. This can be an explicitidentifier (e.g., display a particular image for fifteen seconds), or animplicit identifier (e.g., run a particular program, and ceaseoutputting the user interface of that particular program when theprogram stops running, when a particular user input has been received bythe program, and so forth). Alternatively, the duration can beidentified in different manners. For example, monitor module 104 can beprogrammed or otherwise configured with an indication of the duration,media content 110 can identify durations for trigger results occurringduring playback of media content 110, and so forth.

Additionally, in one or more embodiments monitor module 104 performs theone or more actions identified in a trigger once. After the one or moreactions have been performed once, monitor module 104 no longer performsthe actions even though the criteria of the trigger may be satisfied.Alternatively, in other embodiments monitor module 104 can perform theactions one or more actions identified in a trigger each time thecriteria are satisfied. In such embodiments, monitor module 104 canrestrict how frequently the actions can be performed. For example, eventhough the criteria may be satisfied every 30 seconds, monitor module104 can restrict the actions to being performed no more than once everyhour, no more than once for a particular program, and so forth.

Such restrictions can be imposed by monitor module 104 in a variety ofdifferent manners. In one or more embodiments, a trigger 112 includes anindication of how frequently the one or more actions can be performed.This indication can be included, for example, in the payload portion ofthe trigger. When the criteria of a trigger are satisfied and the one ormore actions performed, monitor module 104 obtains an indication of howfrequently the one or more actions can be performed. This indication canindicate a time (e.g., 30 seconds, five minutes, once per day, etc.), inwhich case monitor module 104 does not perform the one or more actionsuntil after that amount of time has elapsed. Monitor module 104 need notcheck whether the criteria of that trigger are satisfied until afterthat indicated frequency is passed. Alternatively, monitor module 104may check whether the criteria of the trigger are satisfied, but notperform the one or more actions until after that indicated frequency ispassed. Alternatively, this indication can be a count value (e.g., 5, 8,12, 50, etc.), in which case monitor module 104 keeps track of how manytimes the one or more actions have been performed in response to thecriteria being satisfied, and does not perform the one or more actionsafter the count value has been reached. This count value can optionallybe reset at regular or irregular intervals (e.g., hourly, daily, eachtime a new program begins or a channel change occurs, and so forth).

It should be noted that conflict situations can arise where the criteriaof multiple different triggers are satisfied concurrently. Suchconflicts can be resolved in a variety of different manners. In one ormore embodiments, each trigger includes a priority value and theconflict is resolved by performing the actions for the trigger with thehigher priority value. In other embodiments, monitor module 104 can keeptrack of when the actions identified by the different triggers have beenperformed. In such embodiments, these conflicts can be resolved byperforming the actions for the trigger that least recently had itsactions performed. Alternatively, these conflicts can be resolved inother manners, such as random selection of a trigger, concurrentlyperforming the actions identified by multiple triggers, selectingtriggers according to some other criteria or rules, and so forth.

As discussed above, a variety of different criteria or parameters can beincluded in the criteria portion of a trigger. Table I lists examplecriteria that can be included in the criteria portion of a trigger inaccordance with one or more embodiments. It is to be appreciated thatTable I lists only example criteria; not all of the criteria in Table Ineed be used, or alternatively additional criteria can be included.

TABLE I Criteria Description Time-Shift How much playback of the mediacontent can be time-shifted. Can be an explicit or relative value. DelayHow long after the other criteria or parameters are satisfied that theone or more actions in the payload portion are to be performed. Can bean explicit or relative value. Keyword One or more keywords to occur inthe media content. Title The title of a program that is included in themedia content. Episode The episode of a program that is included in themedia content. Description A description of a program that is includedin the media content. Actor List One or more actors or actresses thatappear in a program that is included in the media content. Director Oneor more directors of a program that is included in the media content.Currently tuned A call sign of the channel via which the media contentis being channel call sign received. Currently tuned A number of thechannel via which the media content is being channel number received.DateTime A beginning date and/or time for the trigger. This criteria isBeginning satisfied only if the current date and/or time is after thebeginning date and/or time. DateTime Ending An ending date and/or timefor the trigger. This criteria is satisfied only if the current dateand/or time is before the ending date and/or time. DateTime Expire Anexpiration date and/or time for the trigger. This criteria is satisfiedonly if the current data and/or time is before the expiration dateand/or time. The trigger can optionally be removed (e.g., by monitormodule 104) after the expiration date and/or time. Program-relative Atime value which is added to the program's beginning Beginning TimeDateTime. If no time value is specified, then the program's beginningDateTime is used. This derived value is then used as the comparisoncriteria, comparing against the current DateTime value. This criteria issatisfied only if the current DateTime is greater than or equal to thederived value. Program-relative A time value which is added to theprogram's beginning Ending Time DateTime. If no time value is specified,then the program's ending DateTime is used. This derived value is thenused as the comparison criteria, comparing against the current DateTimevalue. This criteria is satisfied only if the current DateTime is lessthan or equal to the derived value.

These triggers thus allow different actions to be performed in a varietyof different manners and further allow user interaction in a variety ofdifferent manners. For example, a trigger can be generated with atime-shift parameter indicating that playback of a program can betime-shifted two hours. If playback of the program occurs within twohours of the airing of the program, then the one or more actions in thepayload portion of the trigger would be performed (assuming any othercriteria of the trigger are satisfied); otherwise the one or moreactions in the payload portion of the trigger would not be performed.

By way of another example, a trigger can be generated with a time-shiftparameter indicating that playback of the program can be time-shiftedtwo hours, a program-relative beginning time parameter indicating thatplayback of the program is to be within the first five minutes of theprogram, and a delay parameter indicating that the one or more actionsin the payload portion are to be performed at the end of the program.Thus, in order for the criteria of this trigger to be satisfied,playback of the program cannot be time-shifted more than two hours, andat least a portion of the first five minutes of the program is to beplayed back. If these criteria are satisfied (assuming any othercriteria of the trigger are also satisfied), then the one or moreactions in the payload portion of the trigger would be performed at theend of the program; otherwise the one more actions in the payloadportion of the trigger would not be performed.

In one or more embodiments, monitor module 104 resets triggers whenevera change in channel being played back is made. Resetting a triggerrefers to treating the trigger as if none of the criteria of the triggerhave been satisfied, so that the one or more criteria of the triggerwould need to be re-satisfied in order for the one or more actionsidentified by the trigger to be performed. In such embodiments, this canresult in the one or more actions in the payload portion of the triggernot being performed even though the criteria the trigger may have beensatisfied. Following the previous example, if playback of the programwas not time-shifted more than two hours and at least a portion of thefirst five minutes of the program was played back, then these criteriaof the trigger have been satisfied but the delay parameter indicatesthat the one or more actions in the payload portion of the trigger arenot to be performed until the end of the program. If the user tunes to adifferent channel after ten minutes, this trigger is reset, so even ifthe user were to return to this channel the one or more actions in thepayload portion of the trigger would not be performed.

Some example triggers are discussed in the following. It is to beappreciated that these are only examples, and that other formats andtriggers can be used with the triggers for time-shifted content playbackdiscussed herein. One example trigger is:

[TITLE:xyz], [TIME-SHIFT:2:00:00], [EVENT:act1]

This example trigger indicates that the criteria are a program title(TITLE) is to be “xyz” and playback of the program can be time-shifted(TIME-SHIFT) up to two hours after the program was aired (e.g., playbackof the program can be time-shifted to begin up to two hours after theprogram was aired). If that criteria are satisfied then an action(EVENT) of “act1” is to be performed. This action “act1” can be any of avariety of different actions as discussed above. Another example triggeris:

[TITLE:xyz],[TIME-SHIFT:2008-04-15T21:00:00],[BEG:00:05:00],[DELAY:00:59:30],[EVENT:someURL]

This example trigger indicates that the criteria are: a program title(TITLE) is to be “xyz”, playback of the program can be time-shifted(TIME-SHIFT) until Apr. 15, 2008 at 11:00 pm, and a program-relativebeginning time parameter (BEG) indicates that at least part (5 minutes)of the beginning of the program is to be played back. A delay parameter(DELAY) indicates that if the other criteria (TITLE, TIME-SHIFT, andBEG) are satisfied, then one or more actions identified at “someURL”(e.g., running a program, displaying a Web page, etc.) are to beperformed at the end of the program identified as 59 minutes and 30seconds after the beginning of the program.

FIG. 3 is a flowchart illustrating an example process 300 forimplementing triggers for time-shifted content playback in accordancewith one or more embodiments. Process 300 is carried out by a device,such as consumer device 100 of FIG. 1, and can be implemented insoftware, firmware, hardware, or combinations thereof. Process 300 is anexample process for implementing triggers for time-shifted contentplayback; additional discussions of triggers for time-shifted contentplayback are included herein with reference to different figures.

In process 300, one or more triggers corresponding to media content arereceived and stored (act 302). As discussed above, the triggers can bereceived in a variety of different manners via a variety of differenttransmission media or using other distribution techniques. Thecorresponding media content can also optionally be received and storedin act 302, or alternatively the media content need not be stored.Additionally, the media content and corresponding triggers can bereceived together or separately as discussed above.

A request to playback the media content is also received (act 304). Thisrequest can be received from a user or alternatively another component,module, or device. The request can be for previously aired media content(e.g., media content that has been received and stored), oralternatively for other media content (e.g., for media content currentlybeing aired).

In response to the request in act 304, one or more triggerscorresponding to the media content are retrieved (act 306). These one ormore triggers are the triggers received in act 302.

For each of the one or more triggers, a check or determination is madeas to whether the criteria of the trigger, including a time-shiftparameter, is (or are) satisfied (act 308). If the criteria is (or are)not satisfied, then the one or more actions identified by the triggerare not performed (act 310). However, if the criteria is (or are)satisfied, then the one or more actions identified by the trigger areperformed (act 312). Regardless of whether the one or more actions areperformed, process 300 continues checking the criteria in act 308 whilethe media content is being playback.

It should be noted that different triggers can have different criteriabut identify the same one or more actions. Accordingly, even though theone or more actions are not performed in act 310 because the criteriafor one of the triggers is not satisfied, this does not prevent thosesame one or more actions from being performed in act 312 when thecriteria of that trigger is later satisfied or the criteria of anothertrigger identifying the same one or more actions are satisfied.

FIG. 4 illustrates an example system 400 in which one or moreembodiments of triggers for time-shifted content playback can beimplemented. System 400 includes one or more content distributors 402that communicate media content 404 to any number “N” of varioustelevision client systems 408(1-N) via a communication network 410.Client systems 408 can each be, for example, a different type (oralternatively the same types) of consumer device 100 of FIG. 1.Communication network 410 can be implemented to include an IP-basednetwork that facilitates media content distribution and datacommunication between the content distributor(s) 402 and any number oftelevision client devices.

Each of client systems 408(1-N) includes a respective television clientdevice 412(1-N) and a respective display device 414(1-N), such as anytype of television, monitor, LCD, projector, or similar television-baseddisplay system that renders audio, video, and/or image data. Any ofclient devices 412(1-N) can be implemented as any one or combination ofa television client device, a gaming system, or as any othercomputing-based device, such as a desktop computer, a portable computer,a television set-top box, a digital video recorder (DVR), an appliancedevice, a gaming console, and/or as any other type of computing-basedclient device. Any of television client devices 412(1-N) may also beassociated with a user (e.g., a person) and/or an entity that operates aclient device such that a television client device describes logicalclients that include users, software, and/or devices.

Any of television client devices 412(1-N) of the respective clientsystems 408(1-N) can be implemented with one or more processors, acommunication module, memory components, a media content renderingsystem, and a monitor module and trigger store to implement embodimentsof triggers for time-shifted content playback. Additionally, each oftelevision client devices 412(1-N) can be configured for communicationwith any number of different content distributors 402 to receive anytype of media content 404 via the communication network 410. Further,any of the television client devices 412(1-N) can be implemented withany number and combination of differing components as further describedwith reference to the example client device shown in FIG. 5.

In this example, client device 412(2) is a television set-top box thatis connected, or otherwise communicatively linked, to a computing device416 that can be implemented to display trigger results 418. Althoughexample trigger results 418 are illustrated in FIG. 4, it is to beappreciated that trigger results 418 can be presented in other mannersas discussed above. Computing device 416 can also be configured forcommunication with a content distributor 402 to receive the trigger(e.g., triggers 122 of FIG. 1) via the communication network 410.

FIG. 5 illustrates various components of an example consumer device 500that can be implemented as any form of a computing, electronic, ortelevision client device to implement one or more embodiments oftriggers for time-shifted content playback. For example, consumer device500 can be implemented as consumer device 100 shown in FIG. 1, and/or asany of the client devices 412(1-N) of client systems 408(1-N) shown inFIG. 4. In various embodiments, consumer device 500 can be implementedas any one or combination of a television client device, a gamingsystem, or as any other computing-based device, such as a desktopcomputer, a portable computer, a television set-top box, a digital videorecorder (DVR), an appliance device, a gaming console, and/or as anyother type of computing-based client device.

Consumer device 500 includes one or more media content inputs 502 thatmay include Internet Protocol (IP) inputs over which streams of mediacontent are received via an IP-based network. Consumer device 500further includes communication interface(s) 504 that can be implementedas any one or more of a serial and/or parallel interface, a wirelessinterface, any type of network interface, a modem, and as any other typeof communication interface. A wireless interface enables client device500 to receive control input commands 506 and other information from aninput device, such as from remote control device 508, a portablecomputing-based device (such as a cellular phone) 510, or from anotherinfrared (IR), 802.11, Bluetooth, or similar RF input device.

A network interface provides a connection between consumer device 500and a communication network by which other electronic and computingdevices can communicate data with device 500. Similarly, a serial and/orparallel interface provides for data communication directly betweenclient device 500 and the other electronic or computing devices. A modemfacilitates client device 500 communication with other electronic andcomputing devices via a conventional telephone line, a DSL connection,cable, and/or other type of connection.

Consumer device 500 also includes one or more processors 512 (e.g., anyof microprocessors, controllers, and the like) which process variouscomputer-executable instructions to control the operation of device 500,to communicate with other electronic and computing devices, and toimplement embodiments of triggers for time-shifted content playback.Consumer device 500 can be implemented with computer-readable media 514,such as one or more memory components, examples of which include randomaccess memory (RAM), nonvolatile memory (e.g., any one or more of aread-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a diskstorage device. A disk storage device can include any type of magneticor optical storage device, such as a hard disk drive, a recordableand/or rewriteable compact disc (CD), a DVD, a DVD+RW, and the like.

Computer-readable media 514 provides data storage mechanisms to storevarious information and/or data such as software applications and anyother types of information and data related to operational aspects ofconsumer device 500. For example, an operating system 516 and/or othercomputer applications 518 can be maintained as software applicationswith the computer-readable media 514 and executed on processor(s) 512 toimplement embodiments of the triggers for time-shifted content playback.

Consumer device 500 can also include a program guide application 520that is implemented to process program guide data and generate programguides for display. A program guide enables a viewer to navigate throughan onscreen display and locate various media content such as broadcastprograms, recorded programs, video on-demand programs and movies,interactive game selections, network-based applications, and other mediacontent of interest to the viewer. Consumer device 500 can also includea monitor module 522 (shown as a software module in this example) toimplement various embodiments of triggers for time-shifted contentplayback as described herein.

Consumer device 500 can also include a DVR system 524 with playbackapplication 526, and recording media 528 to maintain recorded mediacontent 530 that consumer device 500 receives and/or records. Further,consumer device 500 may access or receive additional recorded mediacontent that is maintained with a remote data store (not shown).Consumer device 500 may also receive media content from a videoon-demand server, or media content that is maintained at a broadcastcenter or content distributor that distributes the media content tosubscriber sites and client devices. Playback application 526 is a videocontrol application that can be implemented to control the playback ofmedia content, the recorded media content 530, and/or other videoon-demand media content, music, and any other audio, video, and/or imagemedia content which can be rendered and/or displayed for viewing.Playback application 526 can be, for example, media content playbackmodule 102 of FIG. 1.

Consumer device 500 also includes an audio and/or video output 532 thatprovides audio and/or video data to an audio rendering and/or displaysystem 534. Audio rendering and/or display system 534 can include anydevices that process, display, and/or otherwise render audio, video, andimage data. Video signals and audio signals can be communicated fromconsumer device 500 to a display device 536 via an RF (radio frequency)link, S-video link, composite video link, component video link, DVI(digital video interface), analog audio connection, or other similarcommunication link. Alternatively, audio rendering and/or display system534 can be implemented as integrated components of the example consumerdevice 500. Consumer device 500 along with the audio rendering and/ordisplay system 534 is an example of a viewing system that can beimplemented in a household viewing area for viewing television programsand/or receiving other television media content.

FIG. 6 illustrates an example entertainment and information system 600in which one or more embodiments of triggers for time-shifted contentplayback can be implemented. System 600 facilitates the distribution ofmedia content, program guide data, and advertising content to multipleviewers and to multiple viewing systems. System 600 includes a contentdistributor 602 and any number “N” of client systems 604(1-N) eachconfigured for communication via a communication network 606. Eachclient system 604(1-N) is an example of the client systems 408(1-N)described with reference to FIG. 5. Each of the client systems 604(1-N)can receive data streams of media content, media content, program guidedata, advertising content, closed captioning data, and the like fromcontent server(s) of content distributor 602 via communication network606.

Communication network 606 can be implemented as any one or combinationof a wide area network (e.g., the Internet), a local area network (LAN),an intranet, an IP-based network, a broadcast network, a wirelessnetwork, a Digital Subscriber Line (DSL) network infrastructure, apoint-to-point coupling infrastructure, or as any other media contentdistribution network. Additionally, communication network 606 can beimplemented using any type of network topology and any networkcommunication protocol, and can be represented or otherwise implementedas a combination of two or more networks. A digital network can includevarious hardwired and/or wireless links 608(1-N), routers, gateways, andso on to facilitate communication between content distributor 602 andclient systems 604(1-N).

System 600 includes a media server 610 that receives media content froma content source 612, program guide data from a program guide source614, and advertising content from an advertisement source 616. Thisadvertising content can be advertising content associated with triggersas discussed above (e.g., advertising content displayed when thecriteria of a trigger is satisfied), and/or different advertisingcontent presented to users of system 600. In one or more embodiments,media server 610 represents an acquisition server that receives theaudio and video media content from content source 612, an EPG serverthat receives the program guide data from program guide source 614,and/or an advertising management server that receives the advertisingcontent from the advertisement source 616.

Content source 612, program guide source 614, and advertisement source616 control distribution of the media content, the program guide data,and at least some of the advertising content to the media server 610and/or to other servers. The media content, program guide data, andadvertising content can be distributed via various transmission media618, such as satellite transmission, radio frequency transmission, cabletransmission, and/or via any number of other wired or wirelesstransmission media. In this example, media server 610 is shown as anindependent component of system 600 that communicates the media content,program guide data, and advertising content to content distributor 602.In an alternate implementation, media server 610 can be implemented as acomponent of content distributor 602.

Content distributor 602 is representative of a headend service in acontent distribution system, for example, that provides the mediacontent, program guide data, and advertising content to multiplesubscribers (e.g., the client systems 604(1-N)). Content distributor 602can be implemented as a satellite operator, a network televisionoperator, a cable operator, and the like to control distribution ofmedia content, program and advertising content, such as movies,television programs, commercials, music, and other audio, video, and/orimage content to client systems 604(1-N).

Content distributor 602 includes various content distribution components620 to facilitate media content processing and distribution, such as asubscriber manager, a device monitor, and one or more content servers.The subscriber manager manages subscriber data, and the device monitormonitors client systems 604(1-N) (e.g., and the subscribers), andmaintains monitored client state information.

Although the various managers, servers, and monitors of contentdistributor 602 (to include media server 610 in one or more embodiments)are described as distributed, independent components of contentdistributor 602, any one or more of the managers, servers, and monitorscan be implemented together as a multi-functional component of contentdistributor 602. Additionally, any one or more of the managers, servers,and monitors described with reference to system 600 can implementfeatures and embodiments of triggers for time-shifted content playback.

Content distributor 602 includes communication interface(s) 622 that canbe implemented as any type of interface to communicate and receive datafrom client devices of the television system. Content distributor 602also includes one or more processors 624 (e.g., any of microprocessors,controllers, and the like) which process various computer-executableinstructions to control the operation of content distributor 602.Content distributor 602 can be implemented with computer-readable media626 which provides data storage to maintain software applications suchas an operating system 628 and media content 630 for distribution to theclient systems 604(1-N).

Client systems 604(1-N) can each be implemented to include a clientdevice 632 and a display device 634 (e.g., a television, LCD, and thelike). A client device 632 of a respective client system 604 can beimplemented in any number of embodiments, such as a set-top box, adigital video recorder (DVR) and playback system, an appliance device, agaming system, and as any other type of client device that may beimplemented in an entertainment and information system. In an alternateembodiment, client system 604(N) is implemented with a computing device636 as well as a client device. The computing device 636 is an exampleof a connected data store that can record and maintain media content fora client device. Additionally, any client device 632 of a respectiveclient system 604 can implement features and embodiments of triggers fortime-shifted content playback as described herein.

Generally, any of the functions or techniques described herein can beimplemented using software, firmware, hardware (e.g., fixed logiccircuitry), manual processing, or a combination of theseimplementations. The terms “module” and “component” as used hereingenerally represent software, firmware, hardware, or combinationsthereof. In the case of a software implementation, the module orcomponent represents program code that performs specified tasks whenexecuted on a processor (e.g., CPU or CPUs). The program code can bestored in one or more computer-readable memory devices. The features ofthe triggers for time-shifted content playback techniques describedherein are platform-independent, meaning that the techniques can beimplemented on a variety of commercial computing platforms having avariety of processors.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. One or more computer-readable media having stored thereon multipleinstructions that, when executed by one or more processors of a consumerdevice, cause the one or more processors to: store a triggercorresponding to media content on a storage device; retrieve the triggerfrom the storage device; check, while playing back the media content,whether one or more criteria of the trigger are satisfied, the one ormore criteria including a time-shift parameter identifying an amount oftime that the trigger is valid after a first available time that themedia content is available for playback; and perform one or more actionsidentified by the trigger if the criteria of the trigger are satisfied,and not perform the one or more actions if the criteria of the triggerare not satisfied.
 2. One or more computer-readable media as recited inclaim 1, wherein the time-shift parameter identifies an ending date andtime, and the time-shift parameter is satisfied only if a current timeis earlier than the ending date and time.
 3. One or morecomputer-readable media as recited in claim 1, wherein the media contentis available for playback to the consumer device when the media contentis communicated to the consumer device via an IP-based network.
 4. Oneor more computer-readable media as recited in claim 1, the one or morecriteria further including a program-relative beginning time parameteridentifying at least a beginning portion of the media content that is tobe played back, and further including a delay parameter identifying howlong after the program-relative beginning time parameter and thetime-shift parameter are satisfied that the one or more actions are tobe performed.
 5. One or more computer-readable media as recited in claim1, wherein to retrieve the trigger from the storage device is toretrieve the trigger from the storage device in response to a request toplayback the media content.
 6. A method implemented in a consumerdevice, the method comprising: retrieving a trigger corresponding tomedia content from a storage device, the trigger including a time-shiftparameter identifying an amount of time that the trigger is valid aftera first available time that the media content is available for playback;and determining, based at least in part on a current time and thetime-shift parameter, whether the trigger is valid during playback ofthe media content.
 7. A method as recited in claim 6, further comprisingperforming one or more actions identified in the trigger in response todetermining that the trigger is valid during playback of the mediacontent.
 8. A method as recited in claim 6, wherein the time-shiftparameter identifies an ending date and time, and the trigger is validonly if the current time is earlier than the ending date and time.
 9. Amethod as recited in claim 6, wherein the media content is received bythe consumer device via an IP-based network.
 10. A method as recited inclaim 6, the trigger further including a program-relative beginning timeparameter identifying at least a beginning portion of the media contentthat is to be played back, and further including a delay parameteridentifying how long after the program-relative beginning time parameterand the time-shift parameter are satisfied that the one or more actionsare to be performed.
 11. A method as recited in claim 6, whereinretrieving the trigger from the storage device comprises retrieving thetrigger from the storage device in response to a request to playback themedia content.
 12. A consumer device comprising: a trigger store tostore multiple triggers, each of the multiple triggers comprising acriteria portion and a payload portion, the criteria portion identifyingone or more criteria and the payload portion identifying one or moreactions to be performed, the one or more criteria including a time-shiftparameter identifying an amount of time that the trigger is valid aftera first available time that media content is available for playback; anda monitor module, coupled to the trigger store, to monitor datacorresponding to media content being played back and detect when thedata satisfies the one or more criteria of one or more of the multipletriggers.
 13. A consumer device as recited in claim 12, wherein themonitor module is further to invoke, in response to detecting that thedata of the media content satisfies the one or more criteria of one ofthe multiple triggers, one or more additional modules to perform the oneor more actions identified in the payload portion of the one trigger.14. A consumer device as recited in claim 12, wherein the monitor moduleis further to perform, in response to detecting that the data of themedia content satisfies the one or more criteria of one of the multipletriggers, the one or more actions identified in the payload portion ofthe one trigger.
 15. A consumer device as recited in claim 12, whereinthe time-shift parameter identifies an ending date and time for thetrigger, and the data satisfies the time-shift parameter only if acurrent time is earlier than the ending date and time.
 16. A consumerdevice as recited in claim 12, wherein the consumer device receives themedia content via an IP-based network.
 17. A consumer device as recitedin claim 12, the one or more criteria of one of the multiple triggersfurther including a program-relative beginning time parameteridentifying at least a beginning portion of the media content that is tobe played back, and further including a delay parameter identifying howlong after the data satisfies both the program-relative beginning timeparameter and the time-shift parameter that the one or more actions inthe payload portion of the one trigger are to be performed.